package tt.com.warehousemanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import tt.com.common.model.YxCommonProviders;
import tt.com.common.model.YxCommonWarehouseGoods;
import tt.com.common.util.PageUtil;

/**
 * @author Czycka
 * @date 2022/8/18 17:22
 * @description 仓库物品服务接口
 */
public interface WarehouseGoodsService extends IService<YxCommonWarehouseGoods> {

    /**
     * 插入物品信息
     *
     * @param goods        物品信息实体类
     * @param createUserId 创建人id
     * @param provider     服务实体类
     * @return 受影响行数
     */
    Integer insertGoods(YxCommonWarehouseGoods goods, String createUserId, YxCommonProviders provider);

    /**
     * 逻辑删除物品信息
     *
     * @param id           物品信息id
     * @param deleteUserId 删除人id
     * @return 数据不存在返回 -1 数据已被删除返回 -2
     */
    Integer deleteGoods(Long id, String deleteUserId);

    /**
     * 修改物品信息
     *
     * @param goods        修改物品的实体类
     * @param updateUserId 修改人id
     * @return 受影响行数
     */
    Integer updateGoods(YxCommonWarehouseGoods goods, String updateUserId);

    /**
     * 分页展示物品信息
     *
     * @param pageUtil 当前页和每页显示数量
     * @return 物品信息集合
     */
    PageUtil showGoodsByPage(PageUtil pageUtil);
}
